package com.mida.app.report.vo.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("列表查询检查项信息vo")
public class ExamsInfoVo implements Serializable {


    /**
     * 检查类型
     */
    private String examServiceType;

    /**
     * 检查类型名称
     */
    private String examServiceTypeName;

    /**
     * 开单科室
     */
    @ApiModelProperty(name = "businessUnitName", value = "开单科室", dataType = "String")
    private String businessUnitName;

    /**
     * 开单科室soid
     */
    @ApiModelProperty(name = "businessUnitSoid", value = "开单科室soid", dataType = "String")
    private String businessUnitSoid;

    /**
     * 开单医生
     */
    @ApiModelProperty(name = "doctor", value = "开单医生", dataType = "String")
    private String doctor;

    /**
     * 开单医生Soid
     */
    @ApiModelProperty(name = "doctor", value = "开单医生soid", dataType = "String")
    private String doctorSoid;

    /**
     * 检查服务实例名称(检查项目)
     */
    @ApiModelProperty(name = "serviceInstanceName", value = "检查服务实例名称", dataType = "String")
    private String serviceInstanceNames;

    /**
     * 检查服务实例soid集合(检查项目)
     */
    @ApiModelProperty(name = "serviceInstanceSoids", value = "检查服务实例soid集合", dataType = "List<String>")
    private List<String> serviceInstanceSoids;
    /**
     * 检查服务实例soid对应的预约时间
     */
    @ApiModelProperty(name = "serviceInstanceSoidMapBookingTime", value = "检查服务实例soid对应的预约时间", dataType = "Map<String,String>")
    private Map<String, String> serviceInstanceSoidMapBookingTime;

    /**
     * 检查服务实例soid对应的预约时间
     */
    @ApiModelProperty(name = "serviceInstanceSoidMapStatus", value = "检查服务实例soid对应的状态", dataType = "Map<String,String>")
    private Map<String, String> serviceInstanceSoidMapStatus;

    /**
     * 检查部位
     */
    @ApiModelProperty(name = "parts", value = "检查类型", dataType = "String")
    private String parts;

    /**
     * 检查科室
     */
    @ApiModelProperty(name = "checkUnitNames", value = "检查科室名称", dataType = "String")
    private String checkUnitNames;

    /**
     * 检查部位soid集合
     */
    @ApiModelProperty(name = "partSoids", value = "检查部位soid集合", dataType = "List<String>")
    private String partSoids;

    /**
     * 检查方法
     */
    @ApiModelProperty(name = "method", value = "检查方法", dataType = "String")
    private String methods;

    /**
     * 检查方法soid集合
     */
    @ApiModelProperty(name = "methodSoids", value = "检查方法", dataType = "List<String>")
    private String methodSoids;

    public static ExamsInfoVo buildVo() {
        return ExamsInfoVo.builder()
                .businessUnitName("外科")
                .serviceInstanceNames("胸部CT平扫")
                .parts("胸部")
                .methods("平扫")
                .examServiceTypeName("CT")
                .examServiceType("")
                .doctor("陈诚")
                .build();
    }
}
